[tool.poetry]
name = "kork"
version = "0.0.3"
description = "Natural Language Interfaces Powered by LLMs"
authors = ["LangChain"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/langchain-ai/kork"

[tool.poetry.dependencies]
python = "^3.8.1"
openai = "^0.27"
langchain = ">=0.0.110"
lark = "^1.1.5"
sphinx-design = "^0.4.1"

[tool.poetry.group.dev.dependencies]
jupyterlab = "^3.6.1"

[tool.poetry.group.test.dependencies]
pytest = "^7.2.1"
black = { version="^23.1.0", extras=["jupyter"] }
poethepoet = "^0.18.1"
ruff = "^0.0.255"
pytest-cov = "^4.0.0"

[tool.poetry.group.docs.dependencies]
nbsphinx = "^0.8.9"
sphinx = "^4.5.0"
sphinx-autobuild = "^2021.3.14"
sphinx_book_theme = "^1.0.0"
myst-nb = "^0.17.1"
linkchecker = "^10.2.1"
toml = "^0.10.2"
sphinx-copybutton = "^0.5.1"

[tool.poetry.group.typing.dependencies]
mypy = "^0.991"

[tool.poetry.group.types.dependencies]
types-toml = "^0.10.8.5"

[tool.poe.tasks]
black = "black"
ruff = "ruff"
pytest.cmd = "py.test --durations=5 -W error::RuntimeWarning --cov --cov-config=.coveragerc --cov-report xml --cov-report term-missing:skip-covered"
mypy = "mypy . --pretty --show-error-codes"
fix = { shell = "poe black . && poe ruff --fix ." }
# Using a --preview feature. Commit your code prior to use this fix.
fix_strings = "black kork --preview"
test = { shell = "poe black . --check --diff && poe ruff . && poe pytest && poe mypy" }
# Use to auto-generate docs
apidoc = "sphinx-apidoc -o docs/source/generated kork"


[tool.ruff]
select = [
  "E",  # pycodestyle
  "F",  # pyflakes
  "I",  # isort
]

# Same as Black.
line-length = 88

[tool.mypy]
disallow_untyped_defs = "True"
ignore_missing_imports = "True"

[tool.coverage.run]
omit = [
    "tests/*",
]


[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
